1 using System.Collections;
2 using
System.Collections.Generic;
3 using
UnityEngine;
4 using
UnityEngine.UI;
5
6 public
class EnemyController : MonoBehaviour {
7
8     
public int maxHitPoints;
9     
public float damageCounter;
10     
public GameObject deathEffect;
11     
public AudioClip hurt;
12
13     
private Animator animator;
14     
private int hitPoints;
15     
private Vector3 bounce;
16     
private int maxScore;
17
18     
void Awake(){
19         animator = GetComponent<Animator> ();
20     }
21
22     
// Use this for initialization
23     
void Start () {
24         InitializeVariables ();
25     }
26     
27     
// Update is called once per frame
28     
void Update () {
29         
30     }
31
32     
void InitializeVariables(){
33         hitPoints = maxHitPoints;
34         maxScore =
1000;
35     }
36
37     
void UpdateAnimationState(){
38         
if(hitPoints <= 5){
39             animator.SetTrigger (
"isDamage");
40         }
41     }
42
43     
void OnCollisionEnter2D(Collision2D collision){
44         
if(collision.relativeVelocity.magnitude > damageCounter){
45             hitPoints -= Mathf.RoundToInt(collision.relativeVelocity.magnitude);
46             UpdateScoreStatus (Mathf.RoundToInt (collision.relativeVelocity.magnitude));
47             
if(GameController.instance != null && MusicController.instance != null){
48                 
if(GameController.instance.isMusicOn){
49                     
if (gameObject != null) {
50                         AudioSource.PlayClipAtPoint (hurt, transform.position);
51                     }
52                 }
53             }
54         }
55             
56
57         UpdateAnimationState ();
58
59         
if(hitPoints <= 0){
60             Death ();
61
62             
if(collision.gameObject.CompareTag("Player Bullet")){
63                 bounce = collision.transform.GetComponent<Rigidbody2D> ().velocity;
64                 bounce.y =
0f;
65                 collision.transform.GetComponent<Rigidbody2D> ().velocity = bounce;
66             
67             }
68         }
69     }
70
71     
void Death(){
72         Destroy (gameObject);
73         GameObject newDeathEffect = Instantiate (deathEffect, transform.position, Quaternion.identity)
as GameObject;
74         Destroy (newDeathEffect,
3f);
75         
if(GameController.instance != null){
76             GameController.instance.score += maxScore;
77         }
78         DisplayScore ();
79
80     }
81
82     
void UpdateScoreStatus(int hitScore){
83         
if(GameController.instance != null){
84             GameController.instance.score += hitScore;
85         }
86     }
87
88     
void DisplayScore(){
89         GameObject scoreText = Instantiate (Resources.Load (
"Score Text Canvas"), new Vector3(transform.position.x, transform.position.y + 1f), Quaternion.identity) as GameObject;
90         scoreText.transform.GetChild (
0).transform.GetComponent<Text> ().text = maxScore.ToString ();
91         Destroy (scoreText,
2f);
92     }
93 }


Use this for initialization

Update is called once per frame




trò chơi Cannon Siege miễn phí 12.317 lượt xem

Gõ tìm kiếm nhanh...